1. Technical Field
This invention generally relates to data processing, and more specifically relates to recovery of software processes in an embedded processor system.
2. Background Art
Modern electronics provide many conveniences of life. Many modern appliances use embedded processors to perform control functions, display information to a user, etc. One example of an embedded processor is found in many electronic appliances, such as microwave ovens and clothes irons. Another common example of an embedded processor is found in many modern automobiles. Many commercially-available embedded processors include specialized functions. For example, one may include display drivers that allow the processor to directly drive seven segment light emitting diode (LED) displays, such as those found on some microwave ovens. Another may include on-chip analog-to-digital (A/D) and/or digital-to-analog (D/A) converters that allow the processor to be connected directly to external analog circuitry. Many specialized functions are available on-chip in known embedded processors.
One problem with an embedded processor system occurs when a software process terminates unexpectedly. Because there is no consistent user interface for embedded processor systems (such as a keyboard and display on a desktop computer system), there may not be any way for the processor to notify a user that the process has terminated, and even if notification is possible, there may be nothing the user can do about it. For this reason, it is desirable to provide intelligence within the embedded system to know how to handle the unexpected termination of a process. Referring to FIG. 2, a prior art method 200 for an embedded processor system begins when a process abnormally terminates (step 210). We assume that control code (such as an operating system kernel) monitors all processes, and detects when any process terminates abnormally (step 220). In response, the control code resets the system (step 230). One of the problems with prior art method 200 of FIG. 2 is that a single abnormal termination of a process results in resetting the entire embedded system. This may not be desirable if the process that abnormally terminated was a non-critical process, or if the abnormally terminated process could be restarted without affecting other processes that are running on the embedded system. Without a way to recover a process in a way that does not require user intervention and that does not force reset of the entire system, the embedded control industry will continue to suffer from inefficient mechanisms for handling the unexpected termination of a process.